package org.example.kafka;

import java.io.Serializable;

/**
 * 为什么有这个对象呢？
 * 因为我想做一个 系统给用户发送消息 什么意思呢？
 * 当我 关注 评论 点赞  或者 比人 关注我 点赞我 评论我     系统将通知
 * 这个触发的频率很高  我们不能直接将这个消息存储数据库(读写慢) 存储redis 额  我们不想在当前请求线程中处理  想另外用线程处理 额这个我也不是很懂  可以利用阻塞队列(java提供的)  但是老师用的中间件框架kafka
 * 所以我想 在上述三种情况下 利用kafka处理消息
 * 当有上述请况发生 需要将一个消息存储kafka(当用户点赞了我  需要将点赞这个类型  谁点赞  给谁点  存储到数据库中message表里)
 * 这个对象就是封装那些信息的   有一个事件发生然后触发我们消息处理  这种基于事件驱动的
 * 需要的参数有 ： 事件的类型 谁触发的  目标是谁
 */
public class Event implements Serializable {
    private String topic;
    private int entityType;
    private int entityId;
    private int entityUserId;
    private int userId;

    public String getTopic() {
        return topic;
    }

    public Event setTopic(String topic) {
        this.topic = topic;
        return this;
    }

    public int getEntityType() {
        return entityType;
    }

    public Event setEntityType(int entityType) {
        this.entityType = entityType;
        return this;
    }

    public int getEntityId() {
        return entityId;
    }

    public Event setEntityId(int entityId) {
        this.entityId = entityId;
        return this;
    }

    public int getEntityUserId() {
        return entityUserId;
    }

    public Event setEntityUserId(int entityUserId) {
        this.entityUserId = entityUserId;
        return this;
    }

    public int getUserId() {
        return userId;
    }

    public Event setUserId(int userId) {
        this.userId = userId;
        return this;
    }
}
